// 给你一个字符串数组，请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

// 字母异位词 是由重新排列源单词的字母得到的一个新单词，所有源单词中的字母通常恰好只用一次。
var groupAnagrams = function(strs) {
  // 哈希算法 思维就是把数据存储在键值的对象身上
  let map = new Map()
  for(var i of strs) {
    //以下实现对字符串的字母排序
    // 先将字符串转换为数组
    let array = Array.from(i)
    // 对数组排序
    array.sort()
    // 将数组转换为字符串
    let key = array.join('')
    let list = map.get(key)?map.get(key):[]
    list.push(i)
    map.set(key,list)
  }
  return Array.from(map.values())
};
let strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
console.log(groupAnagrams(strs));